package com.linkgie.galaxyframework.web.server;

import java.net.InetSocketAddress;

import com.linkgie.galaxyframework.web.server.jetty.JettyServerFactory;

public abstract class WebServerFactory {
	
	private static final WebServerFactory DEFAULT = new JettyServerFactory();
	
	public static WebServerFactory getDefault() {
		return DEFAULT;
	}
	

	/**
	 * 创建一个 WebServer 实例；
	 * 
	 * @param port 端口
	 */
	public WebServer create(int port) {
		return create(new InetSocketAddress(port), null);
	}

	/**
	 * 创建一个 WebServer 实例；
	 * 
	 * @param port            端口
	 * @param resourceRootDir 资源根目录；
	 */
	public WebServer create(int port, String resourceRootDir) {
		return create(new InetSocketAddress(port), resourceRootDir);
	}

	/**
	 * 创建一个 WebServer 实例；
	 * 
	 * @param port 端口
	 */
	public WebServer create(String host, int port) {
		return create(new InetSocketAddress(host, port), null);
	}

	/**
	 * 创建一个 WebServer 实例；
	 * 
	 * @param host            主机地址；
	 * @param port            端口；
	 * @param resourceRootDir 资源根目录；
	 */
	public WebServer create(String host, int port, String resourceRootDir) {
		return create(new InetSocketAddress(host, port), resourceRootDir);
	}

	/**
	 * 创建一个 WebServer 实例；
	 * 
	 * @param hostAddress
	 * @param resourceRootDir 资源根目录；
	 */
	public abstract WebServer create(InetSocketAddress hostAddress, String resourceRootDir);

}
